Automatic routing of connection requests in business intelligence (BI) tools

ABSTRACT

A method and system including one or more data sources; a memory storing processor-executable process steps; and a processor to execute the processor-executable process steps to cause the system to: initiate a business intelligence (BI) tool; connect to a BI platform; receive selection of an initiate query control; retrieve one or more database coupling components, wherein each database coupling component corresponds to a data source; display the retrieved one or more database coupling components; and receive selection of at least one of the retrieved one or more database coupling components to provide data in response to execution of a query. Numerous other aspects are provided.

BACKGROUND

Self-service business intelligence (BI) is an approach to data analyticsthat enables users to access and work with data even if they do not havea background in statistical analysis, business intelligence or datamining (e.g., non-technical user). A self-service BI task may be a dataanalytic task a user carries out himself, instead of passing it on to ainformation technology group for fulfillment. Different BI tools may beused to analyze and visualize data, and then decisions may be made basedon the analysis. The BI tool may be used by non-technical users toanalyze existing data which is stored in different formats in differentdatabases. Conventionally a self-service BI tool may consume connectionserver software that connects the BI tool to the different datasources(e.g., databases) to acquire the data from different datasources (e.g.,databases). However, the connection server software is conventionallybundled with installation software for the BI tool, making the bundlerelatively large.

Systems and methods are desired which support more efficient connectionbetween a self-service BI tool and a datasource that avoids consumptionof the connection server software by the BI tool.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a prior art user interface.

FIG. 2 is a prior art user interface.

FIG. 3 is a prior art block diagram.

FIG. 4 is a flow diagram of a process according to some embodiments.

FIG. 5 is a block diagram of an architecture according to someembodiments.

FIG. 6 is a block diagram of an architecture according to someembodiments.

FIG. 7 is an outward view of a graphical interface according to someembodiments.

FIG. 8 is an outward view of a graphical interface according to someembodiments.

FIG. 9 is a block diagram of a system according to some embodiments.

FIG. 10 is a block diagram of a system according to some embodiments.

DETAILED DESCRIPTION

The following description is provided to enable any person in the art tomake and use the described embodiments and sets forth the best modecontemplated for carrying out some embodiments. Various modifications,however, will remain readily apparent to those in the art.

One or more embodiments or elements thereof can be implemented in theform of a computer program product including a non-transitory computerreadable storage medium with computer usable program code for performingthe method steps indicated herein. Furthermore, one or more embodimentsor elements thereof can be implemented in the form of a system (orapparatus) including a memory, and at least one processor that iscoupled to the memory and operative to perform exemplary method steps.Yet further, in another aspect, one or more embodiments or elementsthereof can be implemented in the form of means for carrying out one ormore of the method steps described herein; the means can include (i)hardware module(s), (ii) software module(s) stored in a computerreadable storage medium (or multiple such media) and implemented on ahardware processor, or (iii) a combination of (i) and (ii); any of(i)-(iii) implement the specific techniques set forth herein.

A user may use self-service business intelligence (BI) tools to analyzeand visualize data, and then make decisions based on the analysis.Self-service BI tools are software that may be used by non-technical andtechnical users for analyzing the existing data which is stored indifferent formats in different databases. Conventionally, each databasevendor/owner provides a piece of software called a database driver. Thedatabase driver may implement a client-server protocol specific for agiven database, where the protocol allows a client of the databasestore/retrieve data from the database. Conventionally, there aredifferent processes to connect the self-service BI tool (“BI tool”) tothe different data sources. The BI tool may act as a thick client, inthat it may operate without the help of a server, as any database accessdriver may be stored within the BI tool (making it “thick”). As usedherein, the terms “database driver,” “database access driver,” “databasecoupling component” may be used interchangeably. Conventionally, tosupport the connection of the BI tool to different databases viadatabase drivers, for example, connection server software may be used inthe BI tool. For example, the connection server software and relatedconfiguration details, as well as corresponding Java ARchive (JAR) filesprovided by different database owners, may be bundled with correspondingJAR software, as part of the installation of the BI tool, making theoverall BI tool size “thick”.

FIGS. 1-3 provide a non-exhaustive conventional “prior art” example ofhow a BI tool can conventionally connect to different databases. A user(not shown) opens a BI tool 302 (FIG. 3) and may be presented with auser interface (not shown) that includes one or more controls. The usermay then select “Query with SQL” control or other control to initiatethe database selection process 300. The user selection may activate aJAVA Remote Method Invocation (RMI) call 304 to retrieve a list ofdatabase drivers 310 from a local installation path. The JAVA RMI call304 may transmit a request for supported database drivers 308 to aconnection server (CS) 306. The connection server 306 may connect anapplication (e.g., a BI tool) to different databases with the help ofdatabase drivers 308 provided by different database owners. Theconnection server 306 may, in turn, retrieve a list of supporteddatabase drivers 310 from connection supported drivers in the installedversion. The list of supported database drivers 310 may then betransmitted to the BI tool 302, and displayed on a user interface (UI)provided by the BI tool 302. For example, the user interface 100 shownin FIG. 1 displays the list of all the database drivers 310 that may beavailable to connect to a corresponding database to retrieve the data inresponse to a query. Next, the user may select at least one databasedriver 308 from the list of database drivers 310. The CS 306 includesthe appropriate code to invoke the user selection, and then the userinterface 200 (FIG. 2) may be displayed. The user may enter their log-incredentials 202 (e.g., user name, password, etc.) to connect to thedatabase 910 (FIG. 9) via the selected database driver 308, and a querymay be executed to retrieve data from the database 910. In thenon-exhaustive example shown in FIG. 2, the selected database driver 308is “Cloudera Impala 1.0—Simba JDBC Drivers.”

While these conventional processes do connect the BI tool to differentdata sources, they do so with an increased size of a thick clientinstallation software, as compared to embodiments described below. It isalso noted that because of the nature of a thick client, the BI toolloses the connection-server related advantages on security,transportability, etc. that may be provided by one or more embodimentsdescribed below. Additionally, conventional BI tools use the plug-ingenerated by the connection server, and the database drivers or versionsof the database drivers provided by the connection server may not becompatible with database driver versions on an enterprise server, forexample. Also, conventionally, enterprise software content is duplicatedin the BI tool, which may increase storage/maintenance costs. When theconnection server does not provide a particular database driver desiredby the user, the conventional BI tool may need to implement theinstall/uninstall feature for these drivers to acquire the appropriatedriver. It is noted that when the database drivers are different (e.g.,the version on the enterprise server is not compatible with the versionon the connections server), the database drivers may not functionproperly and may not access the databases as intended. As part of aconventional install, there may be a need to maintain the two copies ofthe driver in both the BI tool and the enterprise server.

Some embodiments may include an application (“app”). As used herein, theterm “app” refers to a self-contained program or piece of softwaredesigned to fulfill a particular purpose.

In one or more embodiments, a middleware architecture is used toimplement the connection server, whereby the connection server isintegrated with a BI platform server. The BI tool may then connect tothe connection server via the BI platform server using the middlewarearchitecture. The middleware architecture may be software which liesbetween an operating system and the applications running on it, and actsas a translation layer to enable communication and data management fordistributed applications, and, in one or more embodiments, connectingthe BI tool and the connection server together so data and databases maybe easily passed therebetween via the middleware. As a non-exhaustiveexample, the middleware software may be a Common Object Request BrokerArchitecture (CORBA), or any other suitable middleware software able toprovide interoperability among distributed objects. CORBA is a designspecification for an Object Request Broker (ORB), where an ORB mayprovide for distributed objects to communicate with one another, whetherlocally or on remote devices, written in different languages, or atvarious locations on a network. Applicants note that the middlewarearchitecture may provide the following features: language independent(e.g., software is not limited to a particular software language),operating system independent (e.g., available in JAVA, which isoperating system independent), technology independent (e.g., providesfor the normalization of interfaces between various new and legacysystems. As a non-exhaustive example, a database wrapped by a server canhave its database schema change for the sake of improved disk usagewithout affecting the external interfaces), data typing (e.g., providesa mechanism to ensure that user-code conforms to method-names, return-,parameter-types, and exceptions), high tunability (e.g., implementationshave options for tuning the threading and management features), freedomfrom data transfer details (e.g., when handling low-level connection andthreading, provides a high level of detail in error conditions), abilityto compress data.

It is noted that since the BI tool uses the BI platform to access theCS, the BI tool may use the technology, safety and security provided bythe BI platform. As some non-exhaustive examples of using the featuresof the BI platform, the BI tool using the connection server softwarefrom the BI platform, instead of using the duplicated CS softwaredirectly, may decrease the size of the BI tool install, as theinstallation program for the BI tool may not need to include the JARfiles (which may be beneficial as two copies of JAR files do not need tobe maintained); the BI tool and at least one of the connection serverand enterprise server may have compatible versions of drivers becausethey are being supplied by the BI platform; install/uninstall ofdatabase drivers may not be specifically required in the BI tool, asboth the BI tool and enterprise server may point to the connectionserver on the BI platform; an administrator of the BI platform maycontrol which database drivers are displayed in the BI tool, such thatthe database drivers that are displayed are the ones that may beavailable; consumption of the database drivers from the BI platform ismore secure than from thick client way because in thick client way thereis always a duplicate and a human element involved which is removed inone or more embodiments; there may be seamless interoperability fordocuments between the BI tool and the enterprise server; maintenancecosts may be less.

FIGS. 4-7 include a flow diagram of process 400 (FIG. 4) described withrespect to block diagrams 500/600 and an outward view of user interfaces700 and 800 according to some embodiments. Process 400 may be executedby application server 930 according to some embodiments, e.g., byexecution of the BI tool 502 to provide a user with access to the userinterfaces 700/800. In one or more embodiments, the application server930 may be conditioned to perform the process 400, such that a processor1010 (FIG. 10) of the server 930 is a special purpose element configuredto perform operations not performable by a general-purpose computer ordevice.

All processes mentioned herein may be executed by various hardwareelements and/or embodied in processor-executable program code read fromone or more of non-transitory computer-readable media, such as a harddrive, a floppy disk, a CD-ROM, a DVD-ROM, a Flash drive, Flash memory,a magnetic tape, and solid state Random Access Memory (RAM) or Read OnlyMemory (ROM) storage units, and then stored in a compressed, uncompiledand/or encrypted format. In some embodiments, hard-wired circuitry maybe used in place of, or in combination with, program code forimplementation of processes according to some embodiments. Embodimentsare therefore not limited to any specific combination of hardware andsoftware.

User interface 700 may be presented on any type of display apparatus(e.g., desktop monitor, smartphone display, tablet display) provided byany type of client device (e.g., desktop system, smartphone, tabletcomputer). The application which is executed to provide user interface700 may comprise a Web Browser, a standalone application, or any otherapplication. Embodiments are not limited to user interface 700 of FIG.7.

Prior to the start of the process 400, the possible database drivers 520may be input to, and stored on, a BI platform 950 (FIG. 9). In one ormore embodiments, the BI platform 950 may be containerized, whereby acontainer includes an entire runtime environment (e.g., BI platform andits dependencies).

Initially, at S410, a user (not shown) initiates a BI tool 502 (e.g.,Lumira by SAP®) to retrieve data from one or more data sources. Anysuitable BI tool may be used. Additionally, while a database, and moreparticularly, a database table, may be used as an example of a datasource, any other suitable data source may be used. Initiation of the BItool 502 may invoke Representational State Transfer (REST) webservices602 to allow a client (e.g., in this case CORBA layer) to exchangeinformation with the BI tool 502 via a standardized interface andprotocol. The REST webservices may provide a uniform interface usingstandard HTTP operations (such as GET, POST, PUT, etc.) and exchangerepresentations of resources.

Then in S412, the BI tool 502 connects to the BI platform 950. In one ormore embodiments, the BI tool 502 may include a separate log-in 604 toconnect to and access the BI platform 950 or may automatically connectto and access the BI platform 950. For example, FIG. 7 provides a BIplatform log-in user interface (UI) 700. The BI platform log-in UI 700may include one or more user-input fields 702 associated with arespective category 704, including but not limited to Server 704 a, SSOAuthentication 704 b, User Name 704 c, Password 704 d, andAuthentication 704 e. Other suitable categories 704 may be used. Whilethe categories in FIG. 7 are shown with respective user-entry fields, itis noted that any of the user-entry fields may include drop-down menus706 (e.g., associated with Authentication 704 e), or be populated withother information. The BI platform log-in UI 700 may include a RememberMe control 708, to automatically connect the user in the future. The BIplatform log-in UI 700 may also include a connect control 710 to connectthe user to the BI platform 950.

The user may select an initiate query control 712 in S414. It is notedthat the user may either connect to the BI platform firs or may selectthe “Query with SQL” control first, based on a preference set by theuser. In embodiments, before selecting “Query with SQL,” a connectionmay have been established or may be deferred until after selection. Inone or more embodiments, Structured Query Language (SQL), or any othersuitable language may be used to initiate the query to access and/ormanipulate at least one of the data sources.

In one or more embodiments, connection to the BI platform 950 mayautomatically trigger a CORBA mode 504 to connect to a Connection Server(CS) 506 that is integrated with the BI platform 950. As shown in FIG.5, the CORBA mode 504, which may be accessed via a BIP session 501, mayinclude a client 508, a stub 510, an object 512, a Skel 514, an ObjectRequest Broker (ORB) 516, and an Internet Inter-ORB Protocol (HOP) 518.CORBA uses an object-oriented model that enables collaboration betweensystems on different operating systems, programming languages andcomputing hardware. Data communication from client to server isaccomplished through a well-defined object-oriented interface. Theclient 508 is the entity that wishes to perform an operation on theobject 512 via a request. The ORB 516 is responsible for all of themechanisms required to find the object implementation for the request,to prepare the object implementation to receive the request, and tocommunicate the data making up the request. The client 508 may use thestub 510 to make a request, via the ORB 516, as the stub 510 may presentaccess operations on the object 512. The request may be received at theobject 512 via a dynamic skeleton 514.

After the CORBA mode 504 connects to the CS 506, the CS 506 may retrieveone or more database drivers from a list of supported drivers 520 in5416. As described above, each database driver 520 is a softwarecomponent enabling an application to interact with a data source, suchthat each database driver corresponds to a given data source. To connectwith an individual data source, the database driver 520 implements theversion of a client-server protocol specific for the data source andexposes an application programming interface (API) which the BI tool mayuse to access the data source.

In one or more embodiments, the Connection Server (CS) 506 may beintegrated with the BI platform 950. The CS 506 may be used to connectthe BI tool 502 to different databases. The CS 506 may connect end-usersto different databases with the help of data access drivers (i.e.,database drivers). The CS 506 may maintain a connection to the databasedriver and data source 618 once the connection is made, (e.g., via aconnection pool) so that the BI tool may use the same connection manytimes. In one or more embodiments, the CS 506 may be containerized as arun-time environment including one or more CS ADMIN 606 (CSadministration files), a CS Application Programming Interface (API)adapter 608, a CS core 610, and one or more CS drivers 612. In one ormore embodiments, the CS core 610 may be developed in both C++, Javawith CORBA (middleware) architecture, or any other suitable language.The BI platform 950 may also include one or more configuration files 614that provide for the CS 506 to be integrated with the BI platform 950.

In one or more embodiments, the CS API adapter of the CS 506 receives arequest from the BI tool 502 to return the available database drivers520 via the CORBA 504 access of the BI platform 950. The request is sentto the CS core 610, where the requested drivers are notified of therequest to connect. The CS admin may manage the request sent from theclient for connection to the drivers. The CS core 610 may transmit therequest to one or more CS drivers 612, which in turn retrieves the oneor more available database drivers 520 stored on the BI platform 950 viaany suitable middleware 616.

Turning back to the process 400, in S418, the one or more databasedrivers 520 are returned to the BI tool 950, where they are displayed onthe user interface 800 provided by the BI tool 502 in S420 (e.g.,display drivers in the BI client tool 522). The user may then select atleast one of the database drivers 520 to connect to its respective datasource, where the data from the data source is provided to the user inresponse to the query.

FIG. 9 is a block diagram of system architecture 900 according to someembodiments. Embodiments are not limited to architecture 900 or to athree-tier database architecture.

Architecture 900 includes one or more databases 910, database managementsystem (DBMS) 920, application server 930, applications 935, clients940, BI platform 950, connection server 955 with CORBA 504, and one ormore database drivers 520. Applications 935 may comprise server-sideexecutable program code (e.g., compiled code, scripts, etc.) executingwithin application server 930 to receive queries from clients 940 andprovide results to clients 940 based on data of database 910. As anon-exhaustive example, the BI tool 502 is an application 935.

Application server 930 provides any suitable interfaces through whichclients 940 (e.g., end user) may communicate with applications 935executing on application server 930. For example, application server 930may include a HyperText Transfer Protocol (HTTP) interface supporting atransient request/response protocol over Transmission ControlProtocol/Internet Protocol (TCP/IP), a WebSocket interface supportingnon-transient full-duplex communications which implement the Web Socketprotocol over a single TCP/IP connection, and/or an Open Data Protocol(OData) interface.

One or more applications 935 executing on server 930 may communicatewith DBMS 920 using database management interfaces such as, but notlimited to, Open Database Connectivity (ODBC) and Java DatabaseConnectivity (JDBC) interfaces, via the BI Platform 950. These types ofapplications 935 may use Structured Query Language (SQL) to manage andquery data stored in databases 910.

DBMS 920 serves requests to retrieve and/or modify data of database 910,and also performs administrative and management functions. Suchfunctions may include snapshot and backup management, indexing,optimization, garbage collection, and/or any other database functionsthat are or become known. DBMS 920 may also provide application logic,such as database procedures and/or calculations, according to someembodiments. This application logic may comprise scripts, functionallibraries and/or compiled program code.

Application server 930 may be separated from, or closely integratedwith, DBMS 920. A closely-integrated application server 930 may enableexecution of server applications 935 completely on the databaseplatform, without the need for an additional application server. Forexample, according to some embodiments, application server 930 providesa comprehensive set of embedded services which provide end-to-endsupport for Web-based applications. The services may include alightweight web server, configurable support for OData, server-sideJavaScript execution and access to SQL and SQLScript.

Application server 930 may provide application services (e.g., viafunctional libraries) which applications 935 may use to manage and querythe data of database 910. The application services can be used to exposethe database data model, with its tables, hierarchies, views anddatabase procedures, to clients. In addition to exposing the data model,application server 930 may host system services such as a searchservice.

Database 910 may store data used by applications 935. Database 910 maycomprise any query-responsive data source or sources that are or becomeknown, including but not limited to a structured-query language (SQL)relational database management system. Database 910 may comprise arelational database, a multi-dimensional database, an eXtendable MarkupLanguage (XML) document, or any other data storage system storingstructured and/or unstructured data. The data of database 910 may bedistributed among several relational databases, dimensional databases,and/or other data sources. Embodiments are not limited to any number ortypes of data sources.

In some embodiments, the data of database 910 may comprise one or moreof conventional tabular data, row-based data, column-based data, andobject-based data. Moreover, the data may be indexed and/or selectivelyreplicated in an index to allow fast searching and retrieval thereof.Database 910 may support multi-tenancy to separately support multipleunrelated clients by providing multiple logical database systems whichare programmatically isolated from one another.

Database 910 may implement an “in-memory” database, in which a fulldatabase is stored in volatile (e.g., non-disk-based) memory (e.g.,Random Access Memory). The full database may be persisted in and/orbacked up to fixed disks (not shown). Embodiments are not limited to anin-memory implementation. For example, data may be stored in RandomAccess Memory (e.g., cache memory for storing recently-used data) andone or more fixed disks (e.g., persistent memory for storing theirrespective portions of the full database).

Client 940 may comprise one or more individuals or devices executingprogram code of a software application for presenting data on a userinterface. Presentation of a user interface as described herein maycomprise any degree or type of rendering, depending on the type of userinterface code generated by application server 930.

For example, a client 940 may execute a Web Browser to request andreceive a Web page (e.g., in HTML format) from an application 935 ofapplication server 930 via HTTP, HTTPS, and/or WebSocket, and may renderand present the Web page according to known protocols. One or more ofclients 940 may also or alternatively present user interfaces byexecuting a standalone executable file (e.g., an .exe file) or code(e.g., a JAVA applet) within a virtual machine.

FIG. 10 is a block diagram of apparatus 1000 according to someembodiments. Apparatus 1000 may comprise a general- or special-purposecomputing apparatus and may execute program code to perform any of thefunctions described herein. Apparatus 1000 may comprise animplementation of one or more elements of system 900. Apparatus 1000 mayinclude other unshown elements according to some embodiments.

Apparatus 1000 includes database driver processor 1010 operativelycoupled to communication device 1020, data storage device 1030, one ormore input devices 1040, one or more output devices 1050 and memory1060. Communication device 1020 may facilitate communication withexternal devices, such as application server 930. Input device(s) 1040may comprise, for example, a keyboard, a keypad, a mouse or otherpointing device, a microphone, knob or a switch, an infra-red (IR) port,a docking station, and/or a touch screen. Input device(s) 1040 may beused, for example, to manipulate graphical user interfaces and to inputinformation into apparatus 1000. Output device(s) 1050 may comprise, forexample, a display (e.g., a display screen) a speaker, and/or a printer.

Data storage device/memory 1030 may comprise any device, includingcombinations of magnetic storage devices (e.g., magnetic tape, hard diskdrives and flash memory), optical storage devices, Read Only Memory(ROM) devices, Random Access Memory (RAM) etc.

The storage device 1030 stores a program 1012 and/or database driverplatform logic 1014 for controlling the processor 1010. The processor1010 performs instructions of the programs 1012, 1014, and therebyoperates in accordance with any of the embodiments described herein,including but not limited to process 400.

The programs 1012, 1014 may be stored in a compressed, uncompiled and/orencrypted format. The programs 1012, 1014 may furthermore include otherprogram elements, such as an operating system, a database managementsystem, and/or device drivers used by the processor 1010 to interfacewith peripheral devices.

In some embodiments (such as the one shown in FIG. 10), the storagedevice 1030 further stores a database 1100.

The foregoing diagrams represent logical architectures for describingprocesses according to some embodiments, and actual implementations mayinclude more or different components arranged in other manners. Othertopologies may be used in conjunction with other embodiments. Moreover,each system described herein may be implemented by any number ofcomputing devices in communication with one another via any number ofother public and/or private networks. Two or more of such computingdevices of may be located remote from one another and may communicatewith one another via any known manner of network(s) and/or a dedicatedconnection. Each computing device may comprise any number of hardwareand/or software elements suitable to provide the functions describedherein as well as any other functions. For example, any computing deviceused in an implementation of system 100 may include a processor toexecute program code such that the computing device operates asdescribed herein.

All systems and processes discussed herein may be embodied in programcode stored on one or more computer-readable non-transitory media. Suchnon-transitory media may include, for example, a fixed disk, a floppydisk, a CD-ROM, a DVD-ROM, a Flash drive, magnetic tape, and solid-stateRAM or ROM storage units. Embodiments are therefore not limited to anyspecific combination of hardware and software.

The embodiments described herein are solely for the purpose ofillustration. Those in the art will recognize other embodiments may bepracticed with modifications and alterations limited only by the claims.

What is claimed is:
 1. A system comprising: one or more data sources; amemory storing processor-executable process steps; and a processor toexecute the processor-executable process steps to cause the system to:initiate a business intelligence (BI) tool; connect the BI tool to aconnection server integrated with a BI platform, the connection using amiddleware architecture and features of the BI platform, whereinconnection of the BI tool to the BI platform automatically connects theBI tool to the connection server; receive selection of an initiate querycontrol; retrieve, by the connection server, one or more databasecoupling components from the BI platform, wherein each database couplingcomponent corresponds to a data source; display, at the BI tool, theretrieved one or more database coupling components; and receiveselection of at least one of the retrieved one or more database couplingcomponents to provide data in response to execution of a query.
 2. Thesystem of claim 1, wherein the one or more database coupling componentsare retrieved via a Common Object Request Broker Architecture (CORBA)mode.
 3. The system of claim 1, wherein the one or more databasecoupling components are one of exclusive or shareable.
 4. The system ofclaim 2, wherein the CORBA mode is at least one of language-independent,operating system-independent, and technology-independent.
 5. The systemof claim 2, wherein the CORBA mode is operative to access the CS via theBI platform.
 6. The system of claim 5, wherein the CS includes at leastone of a CS administrator, a CS application programming interfaceadapter, a CS core, one or more CS coupling components, and middleware.7. The system of claim 6, wherein the CS core and one or more CScoupling components include configuration files.
 8. The system of claim1, wherein the connection to the BI platform is automatic.
 9. Acomputer-implemented method comprising: initiating a businessintelligence (BI) tool; connecting the BI tool to a connection serverintegrated with a BI platform, the connection using middlewarearchitecture and features of the BI platform, wherein connection of theBI tool to the BI platform automatically connects the BI tool to theconnection server; receiving selection of an initiate query control;retrieving, by the connection server, one or more database couplingcomponents from the BI platform, wherein each database couplingcomponent corresponds to a data source; displaying, at the BI tool, theretrieved one or more database coupling components; and receivingselection of at least one of the retrieved one or more database couplingcomponents to provide data in response to execution of a query.
 10. Themethod of claim 9, wherein the one or more database coupling componentsare retrieved via a Common Object Request Broker Architecture (CORBA)mode.
 11. The method of claim 10, wherein the one or more databasecoupling components are one of exclusive or shareable.
 12. The method ofclaim 11, wherein the CORBA mode is at least one oflanguage-independent, operating system-independent, andtechnology-independent.
 13. The method of claim 11, wherein a connectionserver (CS) is integrated with the BI platform, and the CORBA mode isoperative to access the CS via the BI platform.
 14. A non-transitorycomputer-readable medium storing program code, the program codeexecutable by a computer system to cause the computer system to:initiate a business intelligence (BI) tool; connect the BI tool to aconnection server integrated with a BI platform, the connection using amiddleware architecture and features of the BI platform, whereinconnection of the BI tool to the BI platform automatically connects theBI tool to the connection server; receive selection of an initiate querycontrol; retrieve, by the connection server, one or more databasecoupling components from the BI platform via a Common Object RequestBroker Architecture (CORBA) mode, wherein each database couplingcomponent corresponds to a data source; display at the BI tool theretrieved one or more database coupling components; and receiveselection of at least one of the retrieved one or more database couplingcomponents to provide data in response to execution of a query.
 15. Themedium of claim 14, wherein the one or more database coupling componentsare one of exclusive or shareable.
 16. The medium of claim 14, whereinthe CORBA mode is at least one of language-independent, operatingsystem-independent, and technology-independent.
 17. The medium of claim14, wherein a connection server (CS) is integrated with the BI platform,and the CORBA mode is operative to access the CS via the BI platform.18. The medium of claim 17, wherein the CS includes at least one of a CSadministrator, a CS application programming interface adapter, a CScore, one or more CS coupling components, and middleware.